On an operating system (OS), when file data of a non-volatile storage device (for example, a hard disk or a solid state drive (SSD)) is deleted, the data is not actually deleted from the non-volatile storage device only by deleting management information corresponding to the data on the OS. Since a deleting process on the non-volatile storage device is not performed at every time when the data on the OS is deleted, operation performance is improved to the degree that the deleting process is not performed. This system is effective particularly in a hard disk drive in which access is slow.
On the other hand, since the data clearly deleted on the OS is recognized as data still valid on the non-volatile storage device (host invalid-device valid data), free areas in which no valid data is present on the non-volatile storage device are less than free areas recognized by the OS. In particular, depletion of the free areas on the non-volatile storage device may cause a big problem in an SSD in which logical addresses do not have a one-to-one relation with physical addresses of the non-volatile storage device in some cases.
The following problems may occur:
a problem of considerable deterioration in writing performance, since there is load on a process of ensuring new free blocks by retrieving invalid data areas in physical blocks (active blocks) of NAND flash memory recognized to have valid data by an SSD controller and performing garbage collection on valid data (NAND garbage collection) at the time of writing data to an SSD when free areas of the SSD are depleted, that is, physical blocks (free blocks) of the NAND flash memory recognized not to have valid data by the SSD controller are depleted; and
a problem of considerable deterioration in reliability of an SSD, when write access range is limited to specific areas or extra blocks are deleted due to frequent occurrence of NAND garbage collection when the writing is performed in a state where free areas on the SSD are depleted due to a lot of invalid data.
The above-mentioned problems can be avoided by performing deletion notification from a host (an information processing device) to an SSD when data is deleted on the host. Examples of the data deletion notification include data set management command (commonly called a trim command) described in INCITS ATA/ATAPI Command Set-2 (ACS-2) and Deallocate (AD) of 11h Dataset Management command described in NVM Express Revision 1.1. When data is deleted on a host in this system, a host notifies an SSD of logical address spaces in which deleted data is present, and thus the regions are treated as free areas afterward even on the SSD. Thus, the trim command realizes altering host-invalid and device-valid data into host-invalid and device-invalid data, and thus the SSD can newly ensure free areas.
When deletion notification is performed, a SSD controller invalidates a corresponding region by accessing a data management area. In the invalidating process, the corresponding region is recognized to be invalid by rewriting management information of the SSD. Data of the corresponding region may not be actually deleted or may be deleted.